package com.platform.dao;

import com.platform.domain.TbSysRole;
import com.platform.domain.result.TbSysRoleFunction;

import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * User: wangyanginfo
 * Date: 12-8-24
 * Time: 下午4:03
 * To change this template use File | Settings | File Templates.
 */
public interface RoleDao {

    /**
     * 根据条件查询符合条件的角色集合
     *
     * @param role 查询条件
     * @return 角色集合
     * @throws Exception
     */
    List<TbSysRole> queryRole(TbSysRole role) throws Exception;

    /**
     * 根据用户ID查询符合条件的角色集合
     *
     * @param userId 用户ID
     * @return 角色集合
     * @throws Exception
     */
    List<TbSysRole> queryRoleByUserId(String userId) throws Exception;

    /**
     * 根据用户ID查询除用户授权角色以外的角色集合
     *
     * @param userId 用户ID
     * @return 角色集合
     * @throws Exception
     */
    List<TbSysRole> queryRoleByNotUserId(String userId) throws Exception;

    /**
     * 根据用户ID查询符合条件的角色极权限集合
     *
     * @param userId 用户ID
     * @return 角色集合
     * @throws Exception
     */
    List<TbSysRoleFunction> queryRoleFunctionByUserId(String userId) throws Exception;

    /**
     * 插入新的角色
     *
     * @param role 角色对象
     * @return 执行结果
     * @throws Exception
     */
    int insertRole(TbSysRole role) throws Exception;

    /**
     * 更新角色
     *
     * @param role 角色对象
     * @return 执行结果
     * @throws Exception
     */
    int updateRole(TbSysRole role) throws Exception;

    /**
     * 根据主键删除角色
     *
     * @param roleId 角色ID
     * @return 执行结果
     * @throws Exception
     */
    int deleteRole(String roleId) throws Exception;


}
